iT邦幫忙

2022 iThome 鐵人賽

DAY 25
4
AI & Data

就用 Jetson Nano 來實作 Edge AI 吧!系列 第 25

【Day 25】客製化 YOLOv5 模型 (四):標註資料、導出資料集

  • 分享至 

  • xImage
  •  

有了圖像資料,接著要進行資料標註,透過框選的方式告訴 AI 哪些是我們的目標,資料標註的方法有很多,這邊介紹一個好用的網站「Roboflow」,除了標註功能、擴增資料……等,還有不少完善的功能,方便我們管理資料。

標記資料 (source: unsplash)
標記資料 (source: unsplash)

登入 Roboflow

1. 註冊帳號

請開啟瀏覽器,搜尋「Roboflow」,並進入網站。網站畫面如下,請大家自行點選畫面右上角的「Sign up」,註冊自己的帳號。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-7.png

2. 設置工作空間

登入後,網站會引導大家建置 workspace,名稱與選項依自己的喜好填寫即可。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-8.png

接著下個頁面會詢問,是否新增協作者的 email,沒有的話點選右下方的「Skip this step」即可。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-9.png

接著可以依照自己的需求選擇公開或隱藏(需要付費),並按下創建按鈕。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-10.png

3. 新建專案

設定完工作空間之後,我們就能新增專案,請點選「Create New Project」。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-11.png

頁面會提示要大家選擇資料出處,因為我們使用的是自己的資料,所以選擇「Upload Your Own Data」。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-12.png

接著需要大家填寫這個專案的描述,專案類型請選擇「Object Detection(Bounding Box)」,其餘請自由填寫,可參考如下圖所示。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-13.png

4. 上傳圖片

接下來我們要將拍攝好的照片上傳到網站上,請點選「Select Folder」。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-14.png

請找到儲存我們拍攝照片的「images」資料夾,並點選「Upload」。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-15.png

網站這邊還會再次跳出確認視窗,同樣按下「Upload」上傳我們的照片。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-16.png

Roboflow 會將照片全都顯示在視窗內,讓使用者可以再次查看是否要上傳這些內容。若資料正確無誤,即可點選右上角的「Finish Uploading」將所有照片匯入專案。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-17.png

照片上傳過程如下圖所示:

https://www.circuspi.com/wp-content/uploads/2022/08/p2-18.png

5. 標註資料

照片上傳完畢後,頁面會提示說是否標註您的圖片,請點選「Assign Images」繼續。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-19.png

接著點選一張照片,開始標註工作。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-20.png

請使用滑鼠點選右側工具中的「方框」,並點選照片中要框選的目標附近,拖曳滑鼠繪製方框。繪製方框後會需要設定該方框代表的標籤,請輸入目標名稱,如下圖所示:

https://www.circuspi.com/wp-content/uploads/2022/08/p2-21.png

若是第一次使用,頁面會有一些提示教學,大家可以照著操作,但也可以忽視它,繼續標註其他目標。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-22.png

如下圖,筆者標註了照片當中所有的紅蘿蔔與坑洞,並賦予他們不同的標籤名稱,可以看到在
Roboflow 中,不同的標籤會有不同的顏色區分。請大家依序標註自己所有的照片,雖然過程繁瑣且耗時間,但資料標註的正確性會大大影響模型的訓練,務必標註正確,且不要有過多的背景被框框包進去。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-23.png

完成所有照片的標註之後,按下左上角的「左箭頭」,會離開標註工作。

創建資料集

1. 設定資料集

於左側欄位點選「Annotate」,在右側畫面中會顯示標註與尚未標註的資訊。點選中間名為「ANNOTATING」已被標註的照片群區塊。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-24.png

在此檢查每張照片是否有遺漏標註的部份,確認完畢後請點選右上角的「Add images to Dataset」按鈕。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-25.png

資料集的部份通常會分群為「Train」、「Valid」與「Test」,分別用於訓練、驗證與測試模型使用。此三類資料的的比例,可以藉由拖拉兩個「圓圈」做調整,建議比例為 80:15:5,依據總體資料量多寡可以自行調整,調整完畢請點選「Add Images」。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-26.png

2. 資料增強

完成資料的分群之後,我們可以依照現有的照片做一些變化,擴充照片的數量。

第三項的「Preprocessing」可以快速地幫我們的照片做一些預處理,例如調整照片的大小,筆者在此保留預設值,並按下「Continue」。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-27.png

第四項的「Augmentation」可以幫助我們增強數據,請點選「Add Augmentation Step」,選取我們想要增強的效果。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-28.png

畫面中可以看到,有不少增強我們照片的效果,大家可以點來看看,並選擇是否使用。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-29.png

比方說我選擇了「Hue」,可以看到這個效果能隨機變換照片的顏色,變化的幅度也能自行調整。若確認要使用該效果,可以點選「Apply」按鈕。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-30.png

依照方才的操作,筆者共選擇了五種增強的效果,如下圖所示,請按下「Continue」按鈕繼續。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-31.png

最後我們可以選擇透過上述的增強效果組合,我們要擴充到多少張照片,免費的用戶可以擴充到三倍,在此選擇三倍的選項並按下「Generate」產生增強後的資料集。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-32.png

3. 導出資料集

完成資料集的創建後,我們就能匯出資料集,以便用於後續的訓練。請點選畫面中的「Export」按鈕。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-33.png

不同的模型,輸入的資料格式也會不同,請對應要訓練的模型,選擇正確的模型格式,我們要訓練的是 YOLOv5 模型,所以選擇「YOLOv5 PyTorch」。匯出的方式請選擇「show download code」,這樣待會兒能直接填入 Colab 中。請按下「Continue」按鈕產生 code。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-34.png

產生出來的 code 如下圖所示,圖中「api_key」的部份雖然是反黑的,但實際框選並複製貼上後就會顯示。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-35.png

請大家將自己的「Download Code」如下圖一樣複製起來保留備用。

https://www.circuspi.com/wp-content/uploads/2022/08/p2-36.png

小結

今天使用 Roboflow 完成了資料標註,並且也可以透過其 API 匯出,接著我們就能使用這些資料來訓練 YOLOv5 模型啦!


上一篇
【Day 24】客製化 YOLOv5 模型 (三):蒐集資料
下一篇
【Day 26】客製化 YOLOv5 模型 (五):Colab 訓練 YOLOv5 模型
系列文
就用 Jetson Nano 來實作 Edge AI 吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
asd254585
iT邦新手 5 級 ‧ 2023-01-31 19:09:45

您好~~我目前正在使用Robflow進行AI訓練,但我在Label時用的是中文來進行,導致他訓練完要跑結果時無法正常顯示,請問有方法直接改Label時的名稱嗎?!![

我要留言

立即登入留言